#pragma once

const mp_obj_type_t moopi_type_object;        // Object 类类型
const mp_obj_type_t moopi_type_label;       // Label 类类型

typedef struct moopi_object moopi_object_t;
typedef struct moopi_label moopi_label_t;

// 类的类型结构体
struct moopi_object{
    mp_obj_base_t base;
    int16_t x;
    int16_t y;
    uint16_t width;
    uint16_t height;
    bool bool_val;
    uint8_t byte_val;
    moopi_object_t *parent;
    mp_obj_dict_t *dict;
    size_t iter_index;
};

struct moopi_label{
    moopi_object_t base;
    char *text;
};